package com.reservation.taxi.sanyataxi.enums;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 三亚URL枚举
 */
public enum URLEnum {

    /**
     * /baseinfo/company,网约车平台公司运营规模信息
     */
    BASEINFO_COMPANY("/baseinfo/company", "网约车平台公司运营规模信息"),

    /**
     * / baseinfo/companystat,网约车平台公司营运规模信息
     */
    BASEINFO_COMPANYSTAT("/baseinfo/companystat", "网约车平台公司营运规模信息接口定义"),

    /**
     * /baseinfo/companypay，网约车平台公司支付信息
     */
    BASEINFO_COMPANYPAY("/baseinfo/companypay", "网约车平台公司支付信息"),

    /**
     * /baseinfo/companyservice，网约车平台公司服务机构
     */
    BASEINFO_COMPANYSERVICE("/baseinfo/companyservice", "网约车平台公司服务机构"),

    /**
     * /baseinfo/companypermit，网约车平台公司经营许
     */
    BASEINFO_COMPANYPERMIT("/baseinfo/companypermit", "网约车平台公司经营许"),

    /**
     * /baseinfo/companyfare，网约车平台公司运价信息
     */
    BASEINFO_COMPANYFARE("/baseinfo/companyfare", "网约车平台公司运价信息"),

    /**
     * /baseinfo/vehicle，车辆基本信息接口
     */
    BASEINFO_VEHICLE("/baseinfo/vehicle", "车辆基本信息接口"),

    /**
     * /baseinfo/vehicleinsurance，车辆保险信息接口
     */
    BASEINFO_VEHICLEINSURANCE("/baseinfo/vehicleinsurance", "车辆保险信息接口"),

    /**
     * /baseinfo/vehicletotalmile，网约车车辆里程信息
     */
    BASEINFO_VEHICLETOTALMILE("/baseinfo/vehicletotalmile", "网约车车辆里程信息"),

    /**
     * /baseinfo/driver，驾驶员基本信息
     */
    BASEINFO_DRIVER("/baseinfo/driver", "驾驶员基本信息"),

    /**
     * /baseinfo/drivereducate，网约车驾驶员培训信息
     */
    BASEINFO_DRIVEREDUCATE("/baseinfo/drivereducate", "网约车驾驶员培训信息"),

    /**
     * /baseinfo/driverapp，驾驶员移动终端信息
     */
    BASEINFO_DRIVERAPP("/baseinfo/driverapp", "驾驶员移动终端信息"),

    /**
     * /baseinfo/driverstat，网约车驾驶员统计信息
     */
    BASEINFO_DRIVERSTAT("/baseinfo/driverstat", "网约车驾驶员统计信息"),

    /**
     * /baseinfo/passenger，乘客基本信息
     */
    BASEINFO_PASSENGER("/baseinfo/passenger", "乘客基本信息"),

    /**
     * /order/create，订单发起接口
     */
    ORDER_CREATE("/order/create", "订单发起接口"),

    /**
     * /order/match，订单成功接口
     */
    ORDER_MATCH("/order/match", "订单成功接口"),

    /**
     * /order/cancel，订单撤销接口
     */
    ORDER_CANCEL("/order/cancel", "订单撤销接口"),

    /**
     * /operate/login，车辆经营上线接口
     */
    OPERATE_LOGIN("/operate/login", "车辆经营上线接口"),

    /**
     * /operate/logout，车辆经营下线接口
     */
    OPERATE_LOGOUT("/operate/logout", "车辆经营下线接口"),

    /**
     * /operate/depart，经营出发接口
     */
    OPERATE_DEPART("/operate/depart", "经营出发接口"),

    /**
     * /operate/arrive，经营到达接口
     */
    OPERATE_ARRIVE("/operate/arrive", "经营到达接口"),

    /**
     * /operate/pay，经营支付接口
     */
    OPERATE_PAY("/operate/pay", "经营支付接口"),

    /**
     * /position/driver，驾驶员定位信息接口
     */
    POSITION_DRIVER("/position/driver", "驾驶员定位信息接口"),

    /**
     * /position/vehicle，车辆定位信息接口
     */
    POSITION_VEHICLE("/position/vehicle", "车辆定位信息接口"),

    /**
     * /rated/passenger，乘客评价信息接口
     */
    RATED_PASSENGER("/rated/passenger", "乘客评价信息接口"),

    /**
     * /rated/passengercomplaint，乘客投诉信息接口
     */
    RATED_PASSENGERCOMPLAINT("/rated/passengercomplaint", "乘客投诉信息接口"),

    /**
     * /rated/driverpunish，驾驶员处罚信息接口
     */
    RATED_DRIVERPUNISH("/rated/driverpunish", "驾驶员处罚信息接口"),

    /**
     * /rated/driver，驾驶员信誉信息接口
     */
    RATED_DRIVER("/rated/driver", "驾驶员信誉信息接口"),

    /**
     * /share/company，私人小客车合乘信息服务平台基本信息接口
     */
    SHARE_COMPANY("/share/company", "私人小客车合乘信息服务平台基本信息接口"),

    /**
     * /share/route，私人小客车合乘驾驶员行程发布接口
     */
    SHARE_ROUTE("/share/route", "私人小客车合乘驾驶员行程发布接口"),

    /**
     * /share/order，私人小客车合乘订单接口
     */
    SHARE_ORDER("/share/order", "私人小客车合乘订单接口"),

    /**
     * /share/pay，私人小客车合乘订单支付接口
     */
    SHARE_PAY("/share/pay", "私人小客车合乘订单支付接口"),

    ;


    /**
     * 编码
     */
    private final String code;

    /**
     * 描述
     */
    private final String message;

    URLEnum(String code, String message) {
        this.code = code;
        this.message = message;
    }

    public String getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }

    /**
     * 根据code获取枚举
     *
     * @param code
     * @return
     */
    public static URLEnum getByCode(String code) {
        URLEnum en = null;
        for (URLEnum e : URLEnum.values()) {
            if (e.getCode().equals(code)) {
                en = e;
                break;
            }
        }
        return en;
    }


    /**
     * 获取枚举list数组
     *
     * @return
     */
    public static List<Map<Object, Object>> toList() {
        List<Map<Object, Object>> enumList = new ArrayList<>();
        for (URLEnum e : URLEnum.values()) {
            Map<Object, Object> enumMap = new HashMap<>();
            enumMap.put(e.getCode(), e.getMessage());
            enumList.add(enumMap);
        }
        return enumList;
    }

}
